package com.ztr.leetcode.day07;

public class MaxArea {
    /**
     * 我们每次以双指针为左右边界（也就是「数组」的左右边界）计算出的容量中的最大值。
     * 由于容纳的水量是由
     * 两个指针指向的数字中较小值∗指针之间的距离
     * @param height
     * @return ans
     */
    public static int maxArea(int[] height) {
        int l = 0, r = height.length - 1;
        int ans = 0;
        while (l < r) {
            int area = Math.min(height[l], height[r]) * (r - l);
            ans = Math.max(ans, area);
            if (height[l] <= height[r]) {
                ++l;
            } else {
                --r;
            }
        }
        return ans;
    }


    public static void main(String[] args) {
        int[] nums = {1, 8, 6, 2, 5, 4, 8, 3, 7};
        int result = maxArea(nums);
        System.out.println(result);
    }
}
